/**
 * VUEshop
 * ============================================================================
 * * 版权所有 2015-2027 深圳搜豹网络科技有限公司，并保留所有权利。
 * 网站地址: http://www.vueshop.com.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: 沈小白 2020-07-22 $
 */
import '.env'
import common from "../common/common.js";
import store from "../store/index.js";
let host, post, imgUrl, apiUrl;
let BASE_API = process.uniEnv.BASE_API;
let BASE_HOST = process.uniEnv.BASE_HOST;
let BASE_IMG = process.uniEnv.BASE_IMG_URL;
host = BASE_API;
post = BASE_HOST;

var imgBeforeUrl = "/static/images/" //图片相对路径
var apiBeforeUrl = "/api" //api接口路径
console.log(process.uniEnv);

function getApiUrl() {
	if (post == '') {
		return host + apiBeforeUrl
	} else {
		return host + ":" + post + apiBeforeUrl
	}
}

function getImageUrl() {
	if (post == '') {
		return BASE_IMG + imgBeforeUrl
	} else {
		return hoBASE_IMGst + ":" + post + imgBeforeUrl
	}
}

// if(process.env.NODE_ENV === 'development'){
// 	/*测试h5的测试环境  npm run serve*/ 
// 	//#ifdef H5 || APP-PLUS ||  MP
// 		host = "//jmobile.tpsns.com";
// 		post = ''
// 	//#endif
// 	//#ifndef H5 
// 		host = "https://jmobile.tpsns.com";
// 		post = ''
// 		console.log("大于")
// 	//#endif
// }else if(process.env.NODE_ENV === 'production'){
// 	/*测试h5的测试环境  npm run build:h5*/ 
// 	// #ifdef APP-PLUS || H5 || MP
// 		host = "//jmobile.tpsns.com";
// 		post = ''
// 	// #endif
// 	/*测试h5的测试环境  npm run build:custom test-h5*/ 
// 	// #ifdef TEST-H5
// 		host = "http://192.168.0.250";
// 		post = '8882'
// 	// #endif
// }

imgUrl = getImageUrl()
apiUrl = getApiUrl()
console.log("接口地址为:", apiUrl);
console.log("图片地址为:", imgUrl);
const appName = 'Tpshop多商户商城'
/*延时获取token*/
function getToken(url) {
	const token_type = "bearer";
	let token
	if (url == "/mall/logout") {
		// 退出登录不需要 token_type
		token = store.state.token;;
		token = token.split(token_type)[1]

		// console.log(token)

	} else {
		token = store.state.token;
		// console.log(token)
	}
	return token;
}

export function request(url, method, data, header = {}) {
	return new Promise((resolve, reject) => {
		// uni.showLoading({
		//     title:'加载中'
		// })
		uni.request({

			url: apiUrl + url,

			// // #ifdef  H5 
			// url: '/api' + url,
			// // #endif
			// // #ifndef H5
			// url: apiUrl + url,
			// // #endif

			data,
			method,
			header: {
				'content-type': 'application/json', // 默认值
				'Authorization': getToken(url)
			},
			success: function(res) {
				// uni.hideLoading();
				if (res.statusCode != 200) {
					if (res.statusCode == 400 || res.statusCode == 401 || res.statusCode ==
						402) { //token错误 清除登录信息
						//重新登录
						showError("请求", url)
						showError('信息', res)
						// store.state.hasLogin=false;
						// store.state.user="";
						common.toast("none", "重新登录", 3000)
						setTimeout(() => {
							uni.clearStorage()
							uni.clearStorageSync()
							store.commit("getLogout")
							common.islogin()
						}, 3000)
						// reject(res)
						return false
					}

					if (res.statusCode == 501) {
						var showMsg = (typeof res.data.msg == 'string') ? res.data.msg : '数据格式错误';
						showError(`${showMsg}`, false)
						reject(res)
						return false
					}
					var showMsg = (typeof res.data.msg == 'string') ? res.data.msg : '数据格式错误';
					showError(`${showMsg}`, false)
					reject(res)
					return false


				} else {
					if (res.data.status == -10000) {
						/*清除所有缓存*/
						store.commit("getLogout")
						uni.clearStorageSync()
						uni.clearStorage()
						common.toast("none", "token失效重新登录", 3000)
						setTimeout(() => {
							common.islogin()
						}, 3000)

						return
					}
					// 未设置支付密码
					if (res.data.status == -10020) {
						let time = 3000
						common.toast("none", "请先设置支付密码", time)
						let url = "/pages/user/userinfo_edit/userinfo_edit?type=paypwd";
						navigate(url, time)
						return
					}
					/*短信验证 错误验证  改手机号不存在*/
					if (res.data.status == -10010) {
						resolve(res.data)
					}
					if (res.data.status < 1 && res.data.msg) {
						showError(res.data.msg, false)
						reject(res)
						return false;
					}

					resolve(res.data)
				}



			},
			fail: function(res) {},
			complete: function() {
				// uni.hideLoading()
			}
		})
	})
}

function showError(content, isBack) {
	uni.showModal({
		title: "",
		content: content,
		showCancel: false,
		success: function(res) {
			if (res.confirm) {
				console.log('用户点击确定');
				if (isBack == true) {
					uni.navigateBack({
						delta: 1
					})
				}
			} else if (res.cancel) {
				console.log('用户点击取消');
			}
		}
	});
}

function navigate(url, time) {
	setTimeout(() => {
		uni.navigateTo({
			url: url,
		})
	}, time)
}
host = apiUrl
export default {
	host,
	appName,
	imgUrl
}
